const path = require('path');
const fs = require('fs');
const COS = require('cos-nodejs-sdk-v5');


// 配置腾讯云COS参数
const cos = new COS({
    SecretId: "AKIDb7Uiu8OWUHtRF2g6JJ4CD93mrodvAPfl", // 身份识别 ID
    SecretKey: "5xgEYio01pcM1TkS6h9gigXlw1tZ2ILD", // 身份密钥
});

// 获取dist目录下的所有文件
const dirPath = path.resolve(__dirname, 'dist');

// 遍历目录并上传文件
function traverseDirectory(dirPath, prefix = '') {
    const files = fs.readdirSync(dirPath);
    files.forEach((file) => {
        const filePath = path.join(dirPath, file);
        const relativePath = path.relative(dirPath, filePath);
        const cosKey = path.join(prefix, relativePath).replace(/\\/g, '/'); // 使用 / 替换 \，确保在 COS 上是正斜杠

        if (fs.statSync(filePath).isDirectory()) {
            // 如果是目录，则继续遍历子目录，并传入新的前缀
            traverseDirectory(filePath, cosKey);
        } else {
            // 如果是文件，则上传文件
            fs.readFile(filePath, (err, data) => {
                if (err) {
                    console.error(`\n读取文件 ${relativePath} 失败：`, err);
                    return;
                }

                const params = {
                    Bucket: 'test-1318615828',
                    Region: 'ap-nanjing',
                    Key: cosKey,
                    Body: data, // 使用文件内容进行上传
                };

                cos.putObject(params, function (err, data) {
                    if (err) {
                        console.log(data);
                        console.error(`\n上传文件 ${relativePath} 失败：`, err);
                    } else {
                        console.log(data);
                        console.log(`\n上传文件 ${relativePath} 成功`);
                    }
                });
            });
        }
    });
}

// 开始遍历上传
traverseDirectory(dirPath);
